Register Operands 暫存器運算元

Register運算速度非常快

在MIPS裡面它的運算速度和processor運算時脈一致

MIPS如何操作register

MIPS指令全部都是32bit

Design Principle 1 : Simplicity favors regularity(簡單有易於規則)

計1

簡介register

register是一個很特殊的硬體,可以放置在處理器裡面,
實際上處理器在運算的時候主要都是透過操作這些register

處理器直接存取register有許多好處 :

1. register已經在processor硬體裡面,所以比從memory存取還快!

2. register可提供compiler將高階語言轉換成低階組合語言時,
    一些常用的資料讓他可以暫時存放

    所以我們可以把常用的資料放在register,
    有效減少processor和memory之間的資料溝通

3. 可以改進code density
  • "code density" example :

有"32個register"要決定資料的位置的話要 所以是 5 bits

假設有"一個4GB的記憶體"要決定資料的位置的話要 所以是 32 bits

所以使用register可以有效提升 "code density"


1.共有32個通用型register,每個register有32bit

Design Principle 2 : Smaller is faster(小就是快)
  • 32bit是每個register操作的基本單位 => 稱為一個 "word"

  • 每個register都有各自的編號(0~31)

除了用數字指名暫存器,我們也會依據一些使用的習慣來給每個暫存器一個額外的名字

計2

2.還有32個浮點數型register,每個register也有32bit

3.特殊運用register : HI, LO, PC

隨著register architecture技術進步,register的改變

計3

  1. accumulator(只有一個register) : 做完再存回自己
  2. stack : 操作都要在stack裡面,answer再pop出來
  3. GPR : 可以任意把資料取出來做運算再放回去
  4. Load/Store(GPR的變形) :
所有跟processor有關的運算,operands都要在register裡面進行。
若要對記憶體進行運算,只能透過Load/Store將資料從記憶體取出放到暫存器再重新運算

MIPS其實就是一種Load/Store architecture

只有Load/Store規定運算只能出現在register,其他種架構沒這樣的規定。


不同架構下執行C=A+B的assembly

計4

1975年後所有machine都採用GPRs的概念

results matching ""

    No results matching ""